概念
Factory Method Pattern:又称工厂模式,不同的工厂子类创建不同的产品对象。
与简单工厂的区别
简单工厂是一个工厂生产不同的产品,工厂模式是对工厂抽象化,不同的产品由专门的具体工厂来生产。比如可口可乐工厂专门生产可口可乐
使用
1 | // 可乐抽象类 |
优点
- 用户不需要关系产品的创建细节,也不需要知道具体产品类的类名,只需要关心其所需产品对应的具体工厂是哪一个即可
- 当系统加入新产品,只需要添加一个具体工厂和其对应的具体产品即可,符合开闭原则
缺点
- 当添加新产品时,需要提供新的产品类和具体工厂类,因此系统中类的个数成对增加,增加了系统的复杂度